import math

def calculate_yaw(x1, z1, x2, z2):
    """
    计算从当前位置到目标位置的水平角度（Yaw）。
    :param x1: 当前坐标的 x 坐标
    :param z1: 当前坐标的 z 坐标
    :param x2: 目标坐标的 x 坐标
    :param z2: 目标坐标的 z 坐标
    :return: 水平角度（Yaw）
    """
    dx = x2 - x1
    dz = z2 - z1
    yaw = math.degrees(math.atan2(dz, dx))  # 计算弧度并转换为角度
    return yaw

def calculate_screen_shift(rotation_angle, screen_width=1920, screen_fov=180):
    """
    根据旋转角度计算屏幕上需要移动的像素数。
    :param rotation_angle: 水平旋转角度（Yaw）
    :param screen_width: 屏幕的宽度，默认 1920
    :param screen_fov: 屏幕的视场角度，默认 180 度
    :return: 屏幕上需要移动的像素数
    """
    pixels_per_degree = screen_width / screen_fov  # 每度对应的像素数
    screen_shift = rotation_angle * pixels_per_degree  # 计算需要移动的像素数
    return screen_shift
